1. Field of the Invention
The invention relates generally to expert systems, and more specifically to the field of systems for automatically analyzing, diagnosing and redesigning of complex systems, such as digital circuit networks.
2. Description of the Prior Art
Recently, expert systems have been developed in several fields, most notably medicine, in which such systems are used for diagnostic purposes. Broadly speaking, an expert system essentially includes a data base of premises and conclusions, and the expert system, in response to input information, searches the data base to attempt to find the conclusions whose premises match, to within a selected degree, the input information. Some expert systems, such as those for medical diagnoses, allow a conclusion to be reached iteratively, reaching preliminary conclusions and suggestions for obtaining further input facts which tend to increase the probability that some conclusions are correct, and concomitantly decrease the probability that others are correct.
More specifically, in some expert systems, the system, based on initial input information from an operator and the contents of the data base, selects one or more preliminary conclusions which it deems likely. In addition, upon selecting the preliminary conclusions, the expert system suggests tests which may provide additional data, which, after being obtained, is input to the expert system. Based on the additional data, the probability that one or more of the original conclusions is correct may be enhanced, and the probability of correctness of the others decreased, thereby narrowing the set of likely conclusions. The sequence is repeated iteratively to further narrow the set of likely conclusions until, preferably, one conclusion is reached which is the most likely conclusion based on all of the input data.
Expert systems techniques have been used in connection with system design tools used in the design of complex systems, such as digital electronic circuits, which are used in determining where problems arise in the design of the complex system and suggesting corrections. Such systems basically include three general components, namely, a simulation component, a diagnosis component and a redesign component. The simulation component receives the initial representation of the design of the complex system from the designer and performs a simulation operation to determine the operation of the complex system in response to inputs provided by the designer. The diagnosis component receives (a) from the simulation component the result of the simulation and (b) from the designer a description of the desired operation. Based on that information, the diagnosis component identifies discrepancies between the simulated operation and the desired operation and the causes of the discrepancies.
The redesign component receives the design representation provided by the operator and the causes of the discrepancies, as identified by the diagnosis component, between the simulated operation and the desired operation, and determines, using expert system techniques, ways of redesigning the complex system so as to eliminate the discrepancies. In this, the redesign component may also receive user constraints on the complex system being designed, which may enter into the selection of appropriate redesigns. To verify the redesign as generated by the redesign component, the redesign component may then transmit the redesigned complex system to the simulation component for simulation. Thus, an iterative process, involving iterative operation of the simulation component, the diagnosis component and the redesign component, may be required to provide a final design for the complex system.
Essentially, the expert system used in the redesign component provides, for each discrepancy which can be identified by the diagnosis component, a set of operators which operates on the components of the complex system to provide a modified design which is then simulated and diagnosed. In existing redesign components, as illustrated in D. Brown, et al., "Knowledge And Control For A Mechanical Design Expert System", I.E.E.E. Computer, Vol. 19, No. 7 (July, 1986), pp. 92-100, which are used in design tools, the expert systems are constrained so that the operators are all applied in predetermined sequences. Thus, in those systems, the redesign components can only operate in connection with fairly routine redesigns, thus limiting their utility.